import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from flask import Flask, jsonify

app = Flask(__name__)

# 加载数据
data = pd.read_csv('health_data.csv')
X = data.drop(['health_status'], axis=1)
y = data['health_status']

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练随机森林模型
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)


@app.route('/predict/<int:heart_rate>/<int:blood_pressure>/<int:sleep_hours>', methods=['GET'])
def predict(heart_rate, blood_pressure, sleep_hours):
    input_data = pd.DataFrame({
        'heart_rate': [heart_rate],
        'blood_pressure': [blood_pressure],
       'sleep_hours': [sleep_hours]
    })
    prediction = model.predict(input_data)
    return jsonify({'prediction': int(prediction[0])})


if __name__ == '__main__':
    app.run(debug=True)

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
import joblib

# 模拟生成污水处理相关数据（示例数据，实际中需从传感器等获取真实数据）
data = {
    '污水样本ID': np.arange(1, 101),
    '污水流量': np.random.randint(10, 100, 100),  # 单位：立方米/小时
    '化学需氧量(COD)': np.random.uniform(50, 500, 100),  # 单位：mg/L
    '氨氮含量': np.random.uniform(5, 50, 100),  # 单位：mg/L
    '总磷含量': np.random.uniform(0.5, 5, 100),  # 单位：mg/L
    '处理结果': np.random.choice(['合格', '不合格'], 100)
}
df = pd.DataFrame(data)

# 特征和目标变量
X = df[['污水流量', '化学需氧量(COD)', '氨氮含量', '总磷含量']]
y = df['处理结果']

# 将目标变量转换为数值形式，方便模型处理
y = y.map({'合格': 0, '不合格': 1})

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练随机森林分类模型（判断污水是否处理合格）
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)

# 保存模型
joblib.dump(model,'sewage_treatment_model.pkl')

# 模拟新的污水样本数据进行预测
new_data = pd.DataFrame({
    '污水流量': [50],
    '化学需氧量(COD)': [200],
    '氨氮含量': [20],
    '总磷含量': [2]
})
predicted_result = model.predict(new_data)
result_mapping = {0: '合格', 1: '不合格'}
print(f"预测的污水处理结果: {result_mapping[predicted_result[0]]}")

import pandas as pd import numpy as np from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split import joblib  # 模拟生成绿化维护相关数据（示例数据，实际中需从传感器等获取真实数据） data = {     '植物ID': np.arange(1, 101),     '植物种类': np.random.choice(['玫瑰', '绿萝', '桂花树', '仙人掌'], 100),     '土壤湿度': np.random.randint(0, 100, 100),  # 百分比     '光照时长': np.random.uniform(0, 12, 100),  # 单位：小时     '施肥次数': np.random.randint(0, 5, 100),     '生长状况评分': np.random.randint(0, 10, 100)  # 0-10分，代表生长状况 } df = pd.DataFrame(data)  # 对植物种类进行独热编码，转化为数值特征 df_encoded = pd.get_dummies(df, columns=['植物种类'])  # 特征和目标变量 X = df_encoded[['土壤湿度', '光照时长', '施肥次数'] + list(df_encoded.columns[df_encoded.columns.str.startswith('植物种类_')])] y = df_encoded['生长状况评分']  # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)  # 训练线性回归模型（预测植物生长状况评分） model = LinearRegression() model.fit(X_train, y_train)  # 保存模型 joblib.dump(model, 'greening_maintenance_model.pkl')  # 模拟新的植物数据进行预测 new_data = pd.DataFrame({     '土壤湿度': [50],     '光照时长': [6],     '施肥次数': [2],     '植物种类_玫瑰': [0],     '植物种类_绿萝': [1],     '植物种类_桂花树': [0],     '植物种类_仙人掌': [0] }) predicted_score = model.predict(new_data) print(f"预测的植物生长状况评分: {predicted_score[0]}")